<?php
/**
 * Created by PhpStorm.
 * 商家自定义菜单
 * User: caicm
 * Date: 2017/6/17
 * Time: 13:39
 */

namespace WMApi\Controller;

use WMApi\Model\WmStoreCustomizeMenuModel;
use WMApi\Model\WmGoodsModel;
class SellerMenuController extends SellerBaseController {

    /**
     * 获取店铺自定义菜单列表
     * Created By caicm
     * @param int seller_id 商家id
     * @param int store_id 店铺id
     */
    public function get_customize_menu_list(){
        $seller_id = I('post.seller_id', 0, 'int');
        $store_id = I('post.store_id', 0, 'int');
        if(empty($seller_id) || empty($store_id)){
            returnApiError('参数有误');
        }

        $menu_model = new WmStoreCustomizeMenuModel();
        $goods_model = new WmGoodsModel();

        $menu_list = $menu_model->get_menu_list($seller_id, $store_id);
        foreach ($menu_list as $key=>$val){
            $menu_list[$key]['goods_num'] = $goods_model->find_goodsnum_by_menu($val['menu_id']);
        }

        if($menu_list){
            returnApiSuccess(array('menu_list'=>$menu_list));
        }else{
            returnApiError('无数据');
        }

    }

    /**
     * 获取店铺自定义菜单详情
     * Created By caicm
     * @param int seller_id 商家id
     * @param int store_id 店铺id
     * @param int menu_id 菜单id
     */
    public function get_customize_menu_info(){
        $seller_id = I('post.seller_id', 0, 'int');
        $store_id = I('post.store_id', 0, 'int');
        $menu_id = I('post.menu_id', 0, 'int');
        if(empty($seller_id) || empty($store_id) || empty($menu_id)){
            returnApiError('参数有误');
        }

        $menu_model = new WmStoreCustomizeMenuModel();
        $menu_info = $menu_model->find_menu_info($seller_id, $store_id, $menu_id);

        if($menu_info){
            returnApiSuccess($menu_info);
        }else{
            returnApiError('无数据');
        }

    }

    /**
     * 店铺自定义菜单编辑
     * Created By caicm
     * @param int seller_id 商家id
     * @param int store_id 店铺id
     * @param int menu_id 菜单id
     * @param int sort 排序
     * @param int is_show 是否显示
     * @param string menu_name 菜单名称
     */
    public function customize_menu_edit(){
        $seller_id = I('post.seller_id', 0, 'int');
        $store_id = I('post.store_id', 0, 'int');
        $menu_id = I('post.menu_id', 0, 'int');
        $sort = I('post.sort', 0, 'int');
        $is_show = I('post.is_show', 1, 'int');
        $menu_name = I('post.menu_name');
        if(empty($seller_id) || empty($store_id) || empty($menu_id) || empty($menu_name)){
            returnApiError('参数有误');
        }

        $menu_model = new WmStoreCustomizeMenuModel();
        $menu_count = $menu_model->check_menu($seller_id, $store_id, $menu_name, $menu_id);
        if($menu_count){
            returnApiError('菜单名已存在');
        }

        $update_state = $menu_model->edit_menu($seller_id, $store_id, $menu_id, $sort, $is_show, $menu_name);

        if($update_state){
            returnApiSuccess(null, '操作成功');
        }else{
            returnApiError('操作失败');
        }

    }

    /**
     * 店铺自定义菜单添加
     * Created By caicm
     * @param int seller_id 商家id
     * @param int store_id 店铺id
     * @param int sort 排序
     * @param int is_show 是否显示
     * @param string menu_name 菜单名称
     */
    public function customize_menu_add(){
        $seller_id = I('post.seller_id', 0, 'int');
        $store_id = I('post.store_id', 0, 'int');
        $sort = I('post.sort', 0, 'int');
        $is_show = I('post.is_show', 1, 'int');
        $menu_name = I('post.menu_name');
        if(empty($seller_id) || empty($store_id) || empty($menu_name)){
            returnApiError('参数有误');
        }

        $menu_model = new WmStoreCustomizeMenuModel();
        $menu_count = $menu_model->check_menu($seller_id, $store_id, $menu_name);
        if($menu_count){
            returnApiError('菜单名已存在');
        }

        $add_state = $menu_model->add_menu($seller_id, $store_id, $sort, $is_show, $menu_name);

        if($add_state){
            returnApiSuccess(array('menu_id'=>$add_state), '操作成功');
        }else{
            returnApiError('操作失败');
        }

    }

    /**
     * 获取店铺自定义菜单删除
     * Created By caicm
     * @param int seller_id 商家id
     * @param int store_id 店铺id
     * @param int menu_id 菜单id
     */
    public function customize_menu_del(){
        $seller_id = I('post.seller_id', 0, 'int');
        $store_id = I('post.store_id', 0, 'int');
        $menu_id = I('post.menu_id', 0, 'int');
        if(empty($seller_id) || empty($store_id) || empty($menu_id)){
            returnApiError('参数有误');
        }

        $goods_model = new WmGoodsModel();
        $menu_model = new WmStoreCustomizeMenuModel();
        $menu_info = $menu_model->find_menu_info($seller_id, $store_id, $menu_id);
        if(!$menu_info){
            returnApiError('菜单不存在');
        }

        $menu_goods = $goods_model->find_goodsnum_by_menu($menu_id);
        if($menu_goods){
            returnApiError('菜单栏位有商品，不能直接删除！请先将商品转移到其他菜单');
        }

        $del_state = $menu_model->del_menu($seller_id, $store_id, $menu_id);

        if($del_state){
            returnApiSuccess(null, '操作成功');
        }else{
            returnApiError('操作失败');
        }

    }

    /**
     * 修改店铺自定义菜单-显示状态
     * Created By caicm
     * @param int seller_id 商家id
     * @param int store_id 店铺id
     * @param int menu_id 菜单id
     * @param int is_show 是否显示 1-是 0-否
     */
    public function update_customize_menu_show(){
        $seller_id = I('post.seller_id', 0, 'int');
        $store_id = I('post.store_id', 0, 'int');
        $menu_id = I('post.menu_id', 0, 'int');
        $is_show = I('post.is_show', 0, 'int');
        if(empty($seller_id) || empty($store_id) || empty($menu_id) || !in_array($is_show, array(0,1))){
            returnApiError('参数有误');
        }

        $menu_model = new WmStoreCustomizeMenuModel();
        $menu_info = $menu_model->find_menu_info($seller_id, $store_id, $menu_id);
        if(!$menu_info){
            returnApiError('菜单不存在');
        }

        if($is_show == $menu_info['is_show']){
            $msg = $is_show==1 ? '已显示' : '已隐藏';
            returnApiError("当前状态是{$msg},不用重复修改");
        }


        $del_state = $menu_model->update_show($seller_id, $store_id, $menu_id, $is_show);

        if($del_state){
            returnApiSuccess(null, '操作成功');
        }else{
            returnApiError('操作失败');
        }

    }

}